﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using Modelo.Modulos.ClasesModelado;

namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
   public class TrabajoBD
    {
       public List<TrabajoMod> ConsultarProyectoTareaId(SqlCommand comando, TrabajoMod objs)
       {
           try
           {
               string sp = "spConsultarProyectosTareas";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               comando.Parameters.Add(new SqlParameter("@IdUsuario", SqlDbType.Int));

               comando.Parameters[0].Value = objs.IdUsuario;

               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               DataTable dt = ds.Tables[0];
               List<TrabajoMod> lista = new List<TrabajoMod>();

               for (int i = 0; i < dt.Rows.Count; i++)
               {
                   TrabajoMod objTrabajo = new TrabajoMod();

                   objTrabajo.IdProyecto =Convert.ToInt32( dt.Rows[i]["IdProyecto"]);
                   objTrabajo.IdTarea = Convert.ToInt32(dt.Rows[i]["IdTarea"]);
                   objTrabajo.NombreProyecto = dt.Rows[i]["NombreProyecto"].ToString();
                   objTrabajo.NombreTarea = dt.Rows[i]["NombreTarea"].ToString();

                   lista.Add(objTrabajo);
               }


               return lista;

           }
           catch (Exception exc)
           {
               throw exc;
           }
       }

       public void InsertarTrabajo(SqlCommand comando, TrabajoMod obj)
       {
           try
           {
               string sp = "spInsertarTrabajo";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();


               comando.Parameters.Add(new SqlParameter("@IdProyecto", SqlDbType.Int));
               comando.Parameters.Add(new SqlParameter("@IdTarea", SqlDbType.Int));
               comando.Parameters.Add(new SqlParameter("@Fecha", SqlDbType.DateTime));
               comando.Parameters.Add(new SqlParameter("@HoraTrabajada", SqlDbType.Decimal));
               comando.Parameters.Add(new SqlParameter("@Descripcion", SqlDbType.VarChar));
               comando.Parameters.Add(new SqlParameter("@IdUsuario", SqlDbType.VarChar));
             


               comando.Parameters[0].Value = obj.IdProyecto;
               comando.Parameters[1].Value = obj.IdTarea;
               comando.Parameters[2].Value = obj.FechaTrabajo;
               comando.Parameters[3].Value = obj.HorasTrabajadas;
               comando.Parameters[4].Value = obj.Descripcion;
               comando.Parameters[5].Value = obj.IdUsuario;
        

               comando.ExecuteNonQuery();


           }
           catch (Exception exc)
           {
               throw exc;
           }
       }
       public List<TrabajoMod> ConsultarTrabajoID(SqlCommand comando, TrabajoMod objs)
       {
           try
           {
               string sp = "spConsultarTrabajos";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();

               comando.Parameters.Add(new SqlParameter("@IdUsuario", SqlDbType.Int));

               comando.Parameters[0].Value = objs.IdUsuario;

               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               DataTable dt = ds.Tables[0];
               List<TrabajoMod> lista = new List<TrabajoMod>();

               for (int i = 0; i < dt.Rows.Count; i++)
               {
                   TrabajoMod obj = new TrabajoMod();

                   obj.IdReporte =Convert.ToInt32( dt.Rows[i]["IdReporte"]);
                   obj.NombreProyecto = dt.Rows[i]["NombreProyecto"].ToString();
                   obj.NombreTarea = dt.Rows[i]["NombreTarea"].ToString();
                   obj.FechaTrabajo = Convert.ToDateTime(dt.Rows[i]["Fecha"]);
                   obj.HorasTrabajadas=Convert.ToDecimal(dt.Rows[i]["HoraTrabajada"]);
                   obj.Descripcion = dt.Rows[i]["Descripcion"].ToString();
                   lista.Add(obj);
               }


               return lista;

           }
           catch (Exception exc)
           {
               throw exc;
           }
       }

       public void EliminarTrabajo(SqlCommand comando, TrabajoMod obj)
       {
           try
           {
               string sp = "spEliminaTrabajo";

               comando.CommandType = CommandType.StoredProcedure;
               comando.CommandText = sp;
               comando.Parameters.Clear();


               comando.Parameters.Add(new SqlParameter("@IdReporte", SqlDbType.Int));

               comando.Parameters[0].Value = obj.IdReporte;

               comando.ExecuteNonQuery();


           }
           catch (Exception exc)
           {
               throw exc;
           }
       }
    }
}
